Repository navigation
Conversation
|
@copilot fix snowflake ci and codeql |
Fixed in e1d91cf, 2ef48c6, and 05185c8. Snowflake’s DTLS 1.2 import violation is corrected, and the CodeQL-sensitive debug/logging paths now avoid formatting potentially sensitive output while retaining safe diagnostics. Local validation passed: |
|
@copilot we are still failing CodeQL CI check |
Fixed in fa00010 and 26b6fe8. The CodeQL-flagged sinks now avoid logging dynamic data entirely: DTLS 1.3 queue-full warnings are static, timing panic paths no longer format output fields, and the auto timing match remains exhaustive with static per-variant messages. Local validation passed: |
b3d84d6 to
04db199
Compare
55b0c32 to
73cbfe1
Compare
Keep the CHANGELOG entry within the 120-column limit and split the DTLS 1.2 engine message imports onto single-line `use` statements. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CodeQL treats a tuple that directly holds `self.certificate` as sensitive data and taints every element, so `ClientPending::into_parts` tainted the config that the engines log in their queue-full warnings. Bind the fields before building the tuple. Also stop formatting the BufferTooSmall size in the timing test helper, which CodeQL tainted through `Output::PeerCert`. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Start the handshake deadline at the first ClientHello and honor
handshake_timeout,flight_start_rto, andflight_retriesconsistently across DTLS 1.2, DTLS 1.3, and Auto. Previously, idle time could consume the handshake budget, and Auto used its own retry schedule. Fixes #161.handle_timeout(now)remains the sole clock driver. Clients start the deadline when the first ClientHello fragment is emitted; servers start when the first structurally valid ClientHello fragment is accepted. Construction and idle time consume no budget. The same absolute deadline survives Auto version selection, cookie exchanges, later flights, and retransmissions. A rejected ClientHello body does not reset this per-peer deadline.A shared timer implements the deadline and flight retry policy:
BufferTooSmalldo not consume retry time or attempts.Retry jitter is proportional ±25% of the RTO. Timing durations must be nonzero and at most 3650 days, and deadline/backoff arithmetic handles overflow. Defaults remain 40 seconds for the handshake, a 1-second initial RTO, and 4 retries. Documentation and the event-loop example show how to advance the clock and drain output.
Validation covers both crypto providers, 23 timing integration tests, formatting, Clippy, and rustdoc. Timing tests exercise idle peers, fragmented ClientHellos, Auto handoff, cookie exchanges, retry exhaustion, undersized output buffers, duplicate flights, and final-flight recovery.